package com.unju.ventanas.auditoria;

import javax.swing.JPanel;

import java.awt.Dimension;

import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JTextField;
import javax.swing.JFormattedTextField;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import javax.swing.JButton;
import javax.swing.ImageIcon;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.border.TitledBorder;
import javax.swing.border.BevelBorder;
import javax.swing.JScrollPane;

import java.awt.Color;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JCheckBox;

import com.toedter.calendar.JDateChooser;
import com.unju.modelo.Auditoria;
import com.unju.utils.AllShowMessage;
import com.unju.utils.ConstantesGlobales;
import com.unju.ventanas.principal.JFrmPrincipal;
import com.unju.ventanas.usuario.JPLineaUsuario;

import javax.swing.UIManager;

import org.apache.log4j.Logger;

public class JPAuditoria extends JPanel {
	private static final long serialVersionUID = 1L;
	final static Logger logger = Logger.getLogger(JPAuditoria.class);
	private JButton btnSalir;
	private JButton btnImprimir;

	private JLabel lblFechaInicio;
	private JLabel lblTitulo;
	private JLabel lblFecha;
	private JLabel lblFechaFinal;
	private JLabel lblUsuario;
	private JLabel lblAccionRealizada;
	private JLabel lblDescripcion;
	private JLabel lblBuscar;
	private JTextField txtBusqueda;

	private JFormattedTextField txtFechaInicio;
	private JFormattedTextField txtFechaFinal;

	private JScrollPane scrollPResultBusqueda;

	private JPanel pBusquedaConfig;
	private JPanel pResultBusqueda;
	private JPanel pCabecera;

	private int n = 15;

	private JDateChooser fechaInicio;

	private JDateChooser fechaFinal;

	private JPLineaAuditoria fil;

	

	public JPAuditoria() {
		setSize(1024, 650);
		setMinimumSize(new Dimension(1024, 650));
		iniComponentes();

		actualizarListAuditoria();

		fil =new JPLineaAuditoria("eliminacion", new StringBuilder("se ha borrado el perfil Nuevo"), "08/12/14", "eflores");
		fil.setBounds(10, n, 960, 31);		
		pResultBusqueda.add(fil);
		n=n+40;
		
		fil =new JPLineaAuditoria("eliminacion", new StringBuilder("se ha agrego un Nuevo Perfil Consultor de Proyecto"), "08/12/14", "admin");
		fil.setBounds(10, n, 960, 31);		
		pResultBusqueda.add(fil);
		n=n+40;
		
		fil =new JPLineaAuditoria("eliminacion", new StringBuilder("Proyecto eliminado, 'Instalacion de Computadoras'"), "05/12/14", "admin");
		fil.setBounds(10, n, 960, 31);		
		pResultBusqueda.add(fil);
		n=n+40;
		
		fil =new JPLineaAuditoria("eliminacion", new StringBuilder("Nuevo Recurso "), "05/12/14", "admin");
		fil.setBounds(10, n, 960, 31);		
		pResultBusqueda.add(fil);
		n=n+40;
		
//		for (int i = 0; i < 4; i++) {	
//			logger.debug("agregandoooooo" + i);
//			fil =new JPLineaAuditoria("eliminacion", new StringBuilder("se ha borrado el archivo"+i), "5/8/14", "eflores");
//			fil.setBounds(10, n, 960, 31);		
//			pResultBusqueda.add(fil);
//			n=n+40;
//		}
		
		this.setPreferredSize(new Dimension(1024, 633));

		btnSalir = new JButton("Salir");
		btnSalir.setBounds(883, 599, 89, 23);
		add(btnSalir);

		btnImprimir = new JButton("Imprimir");
		btnImprimir.setBounds(772, 599, 89, 23);
		add(btnImprimir);

		pCabecera = new JPanel();
		pCabecera.setBounds(10, 87, 982, 31);
		add(pCabecera);
		pCabecera.setLayout(null);
		pCabecera.setBorder(new BevelBorder(BevelBorder.RAISED, null, null,
				null, null));
		pCabecera.setBackground(Color.LIGHT_GRAY);

		lblFecha = new JLabel("Fecha ");
		lblFecha.setBounds(167, 11, 66, 14);
		pCabecera.add(lblFecha);

		lblUsuario = new JLabel("Usuario");
		lblUsuario.setBounds(23, 11, 46, 14);
		pCabecera.add(lblUsuario);

		lblAccionRealizada = new JLabel("Accion Realizada");
		lblAccionRealizada.setBounds(299, 11, 97, 14);
		pCabecera.add(lblAccionRealizada);

		lblDescripcion = new JLabel("Descripcion");
		lblDescripcion.setBounds(439, 11, 83, 14);
		pCabecera.add(lblDescripcion);

	}

	public void iniComponentes() {
		setLayout(null);
		// cabecera de busqueda
		lblTitulo = new JLabel("HISTORIAL DE ACCIONES");
		lblTitulo.setBounds(10, 11, 229, 14);
		lblTitulo.setFont(new Font("Trebuchet MS", Font.BOLD, 18));
		add(lblTitulo);

		// Panel para criterio de busqueda

		pBusquedaConfig = new JPanel();
		pBusquedaConfig.setBounds(10, 36, 1004, 40);
		pBusquedaConfig.setBorder(new BevelBorder(BevelBorder.RAISED, null,
				null, null, null));
		add(pBusquedaConfig);
		pBusquedaConfig.setLayout(null);

		lblBuscar = new JLabel("Buscar");
		lblBuscar.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblBuscar.setBounds(22, 13, 52, 15);
		pBusquedaConfig.add(lblBuscar);

		txtBusqueda = new JTextField();
		txtBusqueda.setColumns(10);
		txtBusqueda.setBounds(84, 11, 404, 20);
		pBusquedaConfig.add(txtBusqueda);

		lblFechaInicio = new JLabel("Fecha de Inicio");
		lblFechaInicio.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblFechaInicio.setBounds(510, 13, 97, 15);
		pBusquedaConfig.add(lblFechaInicio);

		fechaInicio = new JDateChooser();
		fechaInicio.setBounds(617, 11, 130, 20);
		pBusquedaConfig.add(fechaInicio);

		fechaFinal = new JDateChooser();
		fechaFinal.setBounds(864, 11, 130, 20);
		pBusquedaConfig.add(fechaFinal);

		lblFechaFinal = new JLabel("Fecha de Final");
		lblFechaFinal.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblFechaFinal.setBounds(757, 13, 97, 15);
		pBusquedaConfig.add(lblFechaFinal);

//		scrollPResultBusqueda = new JScrollPane();
//		scrollPResultBusqueda.setBorder(null);
//		scrollPResultBusqueda
//				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
//		scrollPResultBusqueda.setPreferredSize(new Dimension(20, 400));
//		scrollPResultBusqueda.setAutoscrolls(true);
//		scrollPResultBusqueda.setBounds(10, 128, 1004, 455);
//		add(scrollPResultBusqueda);

//		pResultBusqueda = new JPanel();
//		pResultBusqueda.setMaximumSize(new Dimension(970, 100));
//		pResultBusqueda.setSize(970, 100);
//		pResultBusqueda.setPreferredSize(new Dimension(970, n - n * 2));
//
//		pResultBusqueda.setBorder(new TitledBorder(UIManager
//				.getBorder("TitledBorder.border"), "Resultado de la Busqueda",
//				TitledBorder.LEFT, TitledBorder.TOP, null, Color.BLACK));
//		pResultBusqueda.setLayout(null);
//		scrollPResultBusqueda.setViewportView(pResultBusqueda);
	}

	
	protected void actualizarListAuditoria() {
		// ********************************************************
		pResultBusqueda=null;
		scrollPResultBusqueda=null;		
		//Crear un Scroll para la lista de Resultado		
		scrollPResultBusqueda = new JScrollPane();
		scrollPResultBusqueda.setBorder(null);
		scrollPResultBusqueda.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPResultBusqueda.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		
		

		scrollPResultBusqueda.setPreferredSize(new Dimension(20, 400));
		scrollPResultBusqueda.setAutoscrolls(true);
		scrollPResultBusqueda.setBounds(10, 129, 991, 454);
		add(scrollPResultBusqueda);
		try {
			pResultBusqueda = new JPanel();
			pResultBusqueda.setMaximumSize(new Dimension(970, 100000));
			pResultBusqueda.setSize(970, 400);
			pResultBusqueda.setPreferredSize(new Dimension(970, 400));
			pResultBusqueda.setBorder(new BevelBorder(BevelBorder.RAISED, null,
					null, null, null));
			pResultBusqueda.setLayout(null);
			scrollPResultBusqueda.setRowHeaderView(pResultBusqueda);
			int n = 10;
			int cant = Auditoria.listaDeAuditoria.size();
			for (int i = 0; i < cant; i++) {
				Auditoria aud=new Auditoria();
				aud = Auditoria.listaDeAuditoria.get(i);				
				JPLineaAuditoria fila = new JPLineaAuditoria(aud.getTablaAfectada(),
						new StringBuilder(aud.getAccion()), aud.getFecha(), aud.getUserName());
				
				fila.setBounds(10, n, 960, 31);
				pResultBusqueda.add(fila, i);
				n = n + 40;
			}
			
		} catch (Exception e) {
			e.printStackTrace();
			AllShowMessage
					.showErrorMessage(ConstantesGlobales.MENSAJE_LISTA_ERROR+e);
		}
	}
	
}
